<?php

class mercado extends controller {

    public function __construct($controller = '', $view = '') {
        $this->setSecure(true);
        parent::__construct($controller, $view);
    }
    
    public function bairros() {
        if (isset($_GET['id']) && trim($_GET['id'])) {
            $id = trim($_GET['id']);
            $database = new database();

            $result = $database->select()
                    ->from('bairro')
                    ->where('idMunicipio', $id)
                    ->orderBy('nomeBairro')
                    ->execute();

            $json = array();

            while ($bairro = mysql_fetch_assoc($result)) {
                $json[] = array('idBairro' => $bairro['idBairro'], 'nomeBairro' => $bairro['nomeBairro']);
            }

            if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
                echo json_encode($json);
                exit; // para devolver só o json e não devolver o html do layout
            }
            else
                $this->throwError(404);
        }
        else
            $this->throwError(404);
    }

    public function index() {
        $database = new database();

        $result = $database->select('m.idMercado, m.nome, m.endereco, m.numero, b.nomeBairro')
                ->from('mercado as m')
                ->join('bairro as b', 'm.bairro = b.idBairro')
                ->orderBy('nome')
                ->execute();
        return array('dados' => $result);
    }

    public function novo() {
        $database = new database();

        $resultMunicipios = $database->select()
                ->from('municipio')
                ->execute();

//        $resultBairros = $database->select()
//                ->from('bairro')
//                ->execute();

        return array(
//            'dadosBairros' => $resultBairros, 
            'dadosMunicipios' => $resultMunicipios
        );
    }

    public function editar() {
        $database = new database();
        
        if(isset($_GET['id']) && $_GET['id'] !== ""){
            $id = $_GET['id'];
        } else{
            $this->redirect('/mercado');
        }

        $result = $database->select('m.idMercado,m.nome, m.endereco, m.numero, b.nomeBairro')
                ->from('mercado as m')
                ->join('bairro as b', 'm.bairro = b.idBairro')
                ->where('m.idMercado', $id)
                ->execute();
        return array('dados' => $result);
        
    }

    public function editarProcess() {
        $database = new database();
        
        if(isset($_GET['id']) && $_GET['id'] !== ""){
            $id = $_GET['id'];
        } else{
            $this->redirect('/mercado');
        }
        
        $register = array();

        if (isset($_POST['nome'])) {
            $register['nome'] = trim($_POST['nome']);
        }

        if (isset($_POST['endereco'])) {
            $register['endereco'] = trim($_POST['endereco']);
        }

        if (isset($_POST['numero'])) {
            $register['numero'] = trim($_POST['numero']);
        }

        foreach ($register as $campo => $valor) {
            if (!$valor)
                $this->redirect('/mercado/editar/?id='.$id.'&error=' . $campo);
        }
        
        $database->update('mercado', $register)
           ->where('idMercado', $id);

        $update = $database->execute();

        if ($update) {
            $this->redirect('/mercado/?msg=editado');
        } else {
            $this->redirect('/mercado/novo/?error=erro');
        }
    }
    
    public function deletar() {
        
    }

    public function visualizar() {
        if(isset($_GET['id']) && $_GET['id'] !== ""){
                $id = $_GET['id'];
        } else{
                $this->redirect('/mercado');
        }
        
         $database = new database();

        $result = $database->select('mp.mercado, mp.produto, mp.preco, mp.data, m.nome, m.endereco, m.numero, b.nomeBairro, p.nomeProduto, p.imagemProduto, b.nomeBairro, mc.nomeMarca')
                ->from('mercadoproduto as mp')
                ->join('mercado as m', 'mp.mercado = m.idMercado')
                ->join('produto as p', 'mp.produto = p.idProduto')
                ->join('bairro as b', 'm.bairro = b.idBairro')
                ->join('marca as mc', 'p.marca = mc.idMarca')
                ->where('idMercado', $id)
                ->execute();
        return array('dados' => $result);
        
    }

    public function verificaNovo() {
        #============Validação de campos =============#

        $register = array();

        if (isset($_POST['nome'])) {
            $register['nome'] = trim($_POST['nome']);
        }

        if (isset($_POST['endereco'])) {
            $register['endereco'] = trim($_POST['endereco']);
        }

        if (isset($_POST['numero'])) {
            $register['numero'] = trim($_POST['numero']);
        }

        if (isset($_POST['bairro'])) {
            $register['bairro'] = trim($_POST['bairro']);
        }

        foreach ($register as $campo => $valor) {
            if (!$valor)
                $this->redirect('/mercado/novo/?error=' . $campo);
        }

        $db = new database();

        $db->insert('mercado', $register);

        $insere = $db->execute();

        if ($insere) {
            $this->redirect('/mercado/?msg=sucesso');
        } else {
            $this->redirect('/mercado/novo/?error=erro');
        }

        #=============================================#
    }

}

?>
